package com.ph.irp.stock.dao;

import java.io.Serializable;
import java.util.List;

import com.ph.irp.model.PStockInStorage;

public interface StockInStorageDAO extends Serializable {
	/**
	 * 增加采购入库单信息
	 * @param stockInStorage 采购订单的Model
	 * @throws Throwable
	 */
	public void addStockInStorage(PStockInStorage stockInStorage) throws Throwable;
	/**
	 * 删除采购入库单信息
	 * @param stockInStorageId 要删掉的采购入库单的Id
	 * @throws Throwable
	 */
	public void deleteStockInStorage(String stockInStorageId) throws Throwable;
	/**
	 * 修改采购入库单信息
	 * @param stockInStorage 修改的采购入库单的Model
	 * @throws Throwable
	 */
	public void updateStockInStorage(PStockInStorage stockInStorage) throws Throwable;
	/**
	 * 根据采购入库单的Id查询采购入库单信息
	 * @param stockInStorageId 要查找的采购入库单的Id
	 * @return 如果数据库中有相符信息，则返回采购入库单信息的一个Model；若数据库中无相符信息，则返回null。
	 * @throws Throwable
	 */
	public PStockInStorage getStockInStorageById(int stockInStorageId) throws Throwable;
	/**
	 * 查询出所有的采购入库单信息
	 * @return 若数据库中有信息，则返回一个存储采购入库信息Model的List；若数据库中无采购入库的信息，则返回null。
	 * @throws Throwable
	 */
	public List<PStockInStorage> getAllStockInStorages() throws Throwable;
	/**
	 * 根据采购入库单号查询采购入库单的Id
	 * @param stockInStorageCode 制定的采购入库单号
	 * @return 要查询的采购入库单的Id，如果不存在返回0.
	 * @throws Throwable
	 */
	public int getStockInStorageIdByCode(String stockInStorageCode) throws Throwable;
	/**
	 * 根据model的信息查询采购入库单信息
	 * @param stockInStorage 包含查询条件的采购入库单model
	 * @param beginDate 查询的开始时间
	 * @param endDate 查询的结束时间 
	 * @return 查询得到的采购入库单的集合
	 * @throws Throwable
	 */
	public List<PStockInStorage> getStockInStorages(PStockInStorage stockInStorage, String beginDate, String endDate) throws Throwable;
	
}
